//
//  MainTabBar.swift
//  zyqWeibo
//
//  Created by 张亚琼 on 15/6/23.
//  Copyright © 2015年 张亚琼. All rights reserved.
//

import UIKit
// 自定义tabBar
class MainTabBar: UITabBar {

    // 按钮总数
    private let totalButtonCount = 5
    

    override func layoutSubviews() {
        super.layoutSubviews()
        
//        print(addButton)
        // 计算每个tabBar的宽度
        let w = bounds.width / CGFloat(totalButtonCount)
        // 计算每个按钮的rect
        let rect = CGRectMake(0, 0, w, bounds.height)
        
        // 遍历所有子视图
        var index = 0 
        for v in subviews {
            // 如果当前视图是控件，并且不是按钮（因为要移动tabBarItem，所以不需要遍历按钮）
            if v is UIControl && !(v is UIButton) {
                // 设置当前遍历到的视图的frame，相比原来的位置移动了多少
                
                // 根据当前控件的下标，移动对应的宽度
                // 第0个，不移动
                // 第1个，移动一个宽度，相当于放在1的位置上。随后把index加2变成3
                // 第2个，移动的距离是3倍的宽度，相当于放在了3的位置。然后把index加1
                // 第3个，移动的距离是4倍的宽度，放在了4的位置
                // 就是说，第0个和第1个正常放，之后就多加一个1，以便空出一个位置来
                v.frame = CGRectOffset(rect, CGFloat(index) * w, 0)
                index += index == 1 ? 2 : 1
                
            }
        }
        // 加号按钮的位置，2倍的宽度，放在2的位置（从0开始）
        addButton.frame = CGRectOffset(rect, 2 * w, 0)
    }
    
    // 懒加载生成加号按钮
    lazy var addButton: UIButton = {
       let btn = UIButton()
        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted)
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted)
        // 这里可以用self，是事先准备好的代码，不一定什么时候会调用
        self.addSubview(btn)
        
        return btn
    }()
}
